//package com.zy.common.core.lock;
//
//
//import org.redisson.api.RLock;
//import org.redisson.api.RedissonClient;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//
//import java.util.concurrent.TimeUnit;
//
//public class RedissonDistributedLocker implements DistributedLocker {
//    private static final Logger logger = LoggerFactory.getLogger(RedissonDistributedLocker.class);
//    private RedissonClient redissonClient;
//
//    public RedissonClient getRedissonClient() {
//        return this.redissonClient;
//    }
//
//    public RedissonDistributedLocker(RedissonClient redissonClient) {
//        this.redissonClient = redissonClient;
//    }
//
//    public boolean tryLock(String lockKey, TimeUnit unit, long waitTime, long leaseTime) {
//        RLock lock = this.redissonClient.getLock(lockKey);
//
//        try {
//            return lock.tryLock(waitTime, leaseTime, unit);
//        } catch (InterruptedException var9) {
//            logger.error("获取锁异常，异常信息:{}", var9.getMessage());
//            return false;
//        }
//    }
//
//    public boolean tryLock(String lockKey) {
//        return this.tryLock(lockKey, TimeUnit.MILLISECONDS, 5000L, 10000L);
//    }
//
//    public boolean isLocked(String lockKey) {
//        RLock lock = this.redissonClient.getLock(lockKey);
//        return lock.isLocked();
//    }
//
//    public RLock lock(String lockKey) {
//        RLock lock = this.redissonClient.getLock(lockKey);
//        lock.lock(10000L, TimeUnit.MILLISECONDS);
//        return lock;
//    }
//
//    public RLock lock(String lockKey, long leaseTime) {
//        RLock lock = this.redissonClient.getLock(lockKey);
//        lock.lock(leaseTime, TimeUnit.MILLISECONDS);
//        return lock;
//    }
//
//    public RLock lock(String lockKey, TimeUnit unit, long leaseTime) {
//        RLock lock = this.redissonClient.getLock(lockKey);
//        lock.lock(leaseTime, unit);
//        return lock;
//    }
//
//    public void unlock(String lockKey) {
//        RLock lock = this.redissonClient.getLock(lockKey);
//        if (lock.isLocked() && lock.isHeldByCurrentThread()) {
//            lock.unlock();
//        }
//
//    }
//
//    public void unlock(RLock lock) {
//        if (lock.isLocked() && lock.isHeldByCurrentThread()) {
//            lock.unlock();
//        }
//
//    }
//}